flow control and error control in data communication